#include<unistd.h>
#include<stdio.h>
#include <sys/types.h>
#include <sys/wait.h>

#define SIZE 512

int main()
{
    int pipefd[2];
    int n = pipe(pipefd);
    if(n!=0)
    {
        perror("pipe fild\n");
        return -1;
    }
    pid_t id = fork();
    if(id == 0)//子进程
    {
        //关闭写端（1）
        close(pipefd[1]);
        //子进程读取数据
        char tmp[SIZE];
        read(pipefd[0],tmp,sizeof(tmp));
        //打印到标准输出
        write(1,tmp,sizeof(tmp));
    }
    else//父进程
    {
        //关闭读端（0）
        close(pipefd[0]);
        //父进程写入数据
        char text[SIZE] = "i am father\n";
        write(pipefd[1],text,sizeof text);
        //等待子进程
        waitpid(id,NULL,0);
    }
    return 0;
}